/**
 * @author xuyh0817
 * @email xuyh0817@foxmail.com
 * @date 2022-02-16 23:15
 * @version 2.0.0
 * @doc todo
 * @website todo
 * @remark  如果要分发源码，需在本文件顶部保留此文件头信息！！
 */
import { COMPONENT_TYPE } from '../../constants'

export default {
  name: COMPONENT_TYPE.EXTEND_SLOT,
  functional: true,
  props: {
    // 组件的属性数据
    data: {
      type: Object
    },
    // 组件插槽方法
    componentFunc: {
      type: Function
    },
    // 组件数据
    value: {
      type: [String, Number, Array, Object],
      default: ''
    }
  },
  render: (h, ctx) => {
    const { data, componentFunc, value } = ctx.props
    if (!componentFunc) {
      throw new Error('componentFunc函数未找到:' + JSON.stringify(data))
    }
    const components = componentFunc({ ...data, value })
    return h('div', [...components])
  }
}
